﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using IBS.Model;
using IBS.Model.Base;

namespace IBS.ServiceContracts
{
    public interface IOperatorInterface
    {
        IList<Request> GetRegRequests(Func<Request, bool> predicate);
        IList<Client> GetClientsByCriteria(Func<Client, bool> predicate, int? pageNumber = null);
        IList<Client> GetClients(int? pageNumber = null);
        Client GetClientById(int clientId);
        void CreateClient(Client clientInfo, Address homeAddress, Address regAddress, string login);
        void UpdateClient(Client client, string login);


        void Deposit(Account account, decimal amount);
        void Withdraw(Account account, decimal amount);
        void Transfer(Account fromAccount, Account toAccount, decimal amount);
        Account CreateAccount(Client client, string login, Currency currency, decimal startAmount = 0);
        
    }
}
